﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Common;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
	public class TranslateNegocioExecutadoToResponse : BaseTranslator<DataContract.Response.NegocioExecutadoResponse, BusinessEntity.NegocioExecutado,
														List<DataContract.Response.NegocioExecutadoResponse>, List<BusinessEntity.NegocioExecutado>>
	{
		public override DataContract.Response.NegocioExecutadoResponse Translate(BusinessEntity.NegocioExecutado from){
			if(from == null){
				return null;
			}

			DataContract.Response.NegocioExecutadoResponse to = new DataContract.Response.NegocioExecutadoResponse();

			to.CodigoBolsaMovimento = from.CodigoBolsaMovimento;
			to.CodigoNegocio = from.CodigoNegocio;
			to.DataHoraExecutado = from.DataHoraExecutado;
			to.DataMovimento = from.DataMovimento;
			to.DataNegocio = from.DataNegocio;
			to.DataOrdem = from.DataOrdem;
			to.DataSistema = from.DataSistema;
			
			to.NaturezaOperacao = (DataContract.Enum.TipoNaturezaOperacao)from.NaturezaOperacao;
			
			to.NomeResUsuario = from.NomeResUsuario;
			to.NumeroNegocio = from.NumeroNegocio;
			to.NumeroOrdem = from.NumeroOrdem;
			to.NumeroOrdemSubSequencia = from.NumeroOrdemSubSequencia;
			to.NumeroSequenciaDET = from.NumeroSequenciaDET;
			
			to.OrigemNegocio = (DataContract.Enum.TipoOrigemNegocio)from.OrigemNegocio;
			
			to.QuantidadeNegocio = from.QuantidadeNegocio;
			to.ValorNegocio = from.ValorNegocio;

			return to;
		}
		
		public List<DataContract.Response.NegocioExecutadoResponse> Translate(List<BusinessEntity.NegocioExecutado> from){
			List<DataContract.Response.NegocioExecutadoResponse> to = new List<Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Response.NegocioExecutadoResponse>();
			
			for(int i=0; i<from.Count; i++){
				to.Add(Translate(from[i]));
			}
			return to;
		}
	}
}
